<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <meta name="renderer" content="webkit">
  <title>机构查询 - 道路运输从业人员安全学习监管平台</title>
  <!-- import CSS -->
  <link rel="stylesheet" href="/style/default/index.css">
  <link rel="stylesheet" href="/style/default/my.css?t=a1">
  <style>
    .el-header {
      background-color: #B3C0D1;
      color: #333;
      line-height: 60px;
    }

    .el-aside {
      color: #333;
    }

    html,
    body,
    #app,
    .el-container {
      padding: 0px;
      margin: 0px;
      height: 100%;
    }

    .my-layout-admin {
      position: fixed;
      top: 46px;
      left: 400px;
      right: 0px;
      bottom: 0px;
    }

    .mydmin-iframe {
      position: absolute;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
      right: 0;
      bottom: 0;
    }

    /* 菜单后面小三角的图标颜色 */
    .el-submenu__title i {
      color: #eee;
    }

    .el-tree-node__expand-icon.is-leaf {
      color: #c0c4cc;
      cursor: default;
      transform: rotate(90deg);
    }

    .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
      background-color: #fbe0e0;
    }
  </style>
</head>

<body style="padding: 40px;">
  <div id="docContent">
    <div class="Breadcrumb"><span class="breadcrumb-item"><span class="breadcrumb-inner is-link">开始开发</span> <span
          class="breadcrumb-separator">/</span></span><span class="breadcrumb-item"><span
          class="breadcrumb-inner is-link">获取Access token</span> <span class="breadcrumb-separator">/</span></span>
    </div>
    <div class="content custom">
      <p>
        access_token是公众号的全局唯一接口调用凭据，公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时，需定时刷新，重复获取将导致上次获取的access_token失效。
      </p>
      <p>公众平台的 API 调用所需的access_token的使用及生成方式说明：</p>
      <p>
        1、建议公众号开发者使用中控服务器统一获取和刷新access_token，其他业务逻辑服务器所使用的access_token均来自于该中控服务器，不应该各自去刷新，否则容易造成冲突，导致access_token覆盖而影响业务；
      </p>
      <p>
        2、目前access_token的有效期通过返回的expires_in来传达，目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中，中控服务器可对外继续输出的老access_token，此时公众平台后台会保证在5分钟内，新老access_token都可用，这保证了第三方业务的平滑过渡；
      </p>
      <p>3、access_token的有效时间可能会在未来有调整，所以中控服务器不仅需要内部定时主动刷新，还需要提供被动刷新access_token的接口，这样便于业务服务器在 API
        调用获知access_token已超时的情况下，可以触发access_token的刷新流程。</p>
      <p>4、对于可能存在风险的调用，在开发者进行获取 access_token调用时进入风险调用确认流程，需要用户管理员确认后才可以成功获取。具体流程为：</p>
      <p>开发者通过某 IP 发起调用-&gt;平台返回错误码[89503]并同时下发模板消息给公众号管理员-&gt;公众号管理员确认该 IP 可以调用-&gt;开发者使用该 IP 再次发起调用-&gt;调用成功。</p>
      <p>如公众号管理员第一次拒绝该 IP 调用，用户在1个小时内将无法使用该 IP 再次发起调用，如公众号管理员多次拒绝该 IP 调用，该 IP
        将可能长期无法发起调用。平台建议开发者在发起调用前主动与管理员沟通确认调用需求，或请求管理员开启 IP 白名单功能并将该 IP 加入 IP 白名单列表。</p>
      <p>公众号和小程序均可以使用 AppID 和AppSecret调用本接口来获取access_token。AppID和 AppSecret 可在“微信公众平台 - 开发 -
        基本配置”页中获得（需要已经成为开发者，且帐号没有异常状态）。**调用接口时，请登录“微信公众平台 - 开发 - 基本配置”提前将服务器 IP 地址添加到 IP
        白名单中，点击查看设置方法，否则将无法调用成功。**小程序无需配置
        IP 白名单。</p>
      <p><strong>接口调用请求说明</strong></p>
      <blockquote>
        <p>https请求方式:&nbsp;GET
          https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&amp;appid=APPID&amp;secret=APPSECRET</p>
      </blockquote>
      <p><strong>参数说明</strong></p>
      <div class="table-wrp">
        <table>
          <thead>
            <tr>
              <th>参数</th>
              <th>是否必须</th>
              <th>说明</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>grant_type</td>
              <td>是</td>
              <td>获取access_token填写client_credential</td>
            </tr>
            <tr>
              <td>appid</td>
              <td>是</td>
              <td>第三方用户唯一凭证</td>
            </tr>
            <tr>
              <td>secret</td>
              <td>是</td>
              <td>第三方用户唯一凭证密钥，即appsecret</td>
            </tr>
          </tbody>
        </table>
      </div>
      <p><strong>返回说明</strong></p>
      <p>正常情况下，微信会返回下述 JSON 数据包给公众号：</p>
      <div class="language-json extra-class">
        <pre class="language-json"><code><span class="token punctuation">{</span><span class="token property">"access_token"</span><span class="token operator">:</span><span class="token string">"ACCESS_TOKEN"</span><span class="token punctuation">,</span><span class="token property">"expires_in"</span><span class="token operator">:</span><span class="token number">7200</span><span class="token punctuation">}</span>
  </code></pre>
      </div>
      <p><strong>参数说明</strong></p>
      <div class="table-wrp">
        <table>
          <thead>
            <tr>
              <th>参数</th>
              <th>说明</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>access_token</td>
              <td>获取到的凭证</td>
            </tr>
            <tr>
              <td>expires_in</td>
              <td>凭证有效时间，单位：秒</td>
            </tr>
          </tbody>
        </table>
      </div>
      <p>错误时微信会返回错误码等信息，JSON数据包示例如下（该示例为 AppID 无效错误）:</p>
      <div class="language-json extra-class">
        <pre class="language-json"><code><span class="token punctuation">{</span><span class="token property">"errcode"</span><span class="token operator">:</span><span class="token number">40013</span><span class="token punctuation">,</span><span class="token property">"errmsg"</span><span class="token operator">:</span><span class="token string">"invalid appid"</span><span class="token punctuation">}</span>
  </code></pre>
      </div>
      <p><strong>返回码说明</strong></p>
      <div class="table-wrp">
        <table>
          <thead>
            <tr>
              <th>返回码</th>
              <th>说明</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>-1</td>
              <td>系统繁忙，此时请开发者稍候再试</td>
            </tr>
            <tr>
              <td>0</td>
              <td>请求成功</td>
            </tr>
            <tr>
              <td>40001</td>
              <td>AppSecret错误或者 AppSecret 不属于这个公众号，请开发者确认 AppSecret 的正确性</td>
            </tr>
            <tr>
              <td>40002</td>
              <td>请确保grant_type字段值为client_credential</td>
            </tr>
            <tr>
              <td>40164</td>
              <td>调用接口的 IP 地址不在白名单中，请在接口 IP 白名单中进行设置。</td>
            </tr>
            <tr>
              <td>89503</td>
              <td>此 IP 调用需要管理员确认,请联系管理员</td>
            </tr>
            <tr>
              <td>89501</td>
              <td>此 IP 正在等待管理员确认,请联系管理员</td>
            </tr>
            <tr>
              <td>89506</td>
              <td>24小时内该 IP 被管理员拒绝调用两次，24小时内不可再使用该 IP 调用</td>
            </tr>
            <tr>
              <td>89507</td>
              <td>1小时内该 IP 被管理员拒绝调用一次，1小时内不可再使用该 IP 调用</td>
            </tr>
          </tbody>
        </table>
      </div>
      <p><a
          href="https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&amp;type=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81&amp;form=%E8%8E%B7%E5%8F%96access_token%E6%8E%A5%E5%8F%A3%20/token"
          target="_blank">使用网页调试工具调试该接口</a></p>
    </div>
    <div class="fixed-translate" style="display:none;"><span>The translations are provided by WeChat Translation and are
        for reference only. In case of any inconsistency and discrepancy between the Chinese version and the English
        version, the Chinese version shall prevail.Incorrect translation. <a href="javascript:;"
          class="fixed-translate-btn">Tap to report.</a></span></div>
  </div>
</body>